<?php

// 该验证器在application/home/controller/Coupon.php的控制器用到，在领取方法receive()用到

namespace app\common\validate\Coupon;

use think\Validate;

/* 只定义一个receive规则，下面分三部分处理规则信息，分别为:
第一，$rule里面写规则;
第二，$message里面写规则信息;
第三，$scene这里写场景结构*/
class Receive extends Validate
{
    
    //第一步，$rule里面写规则

    /*
    这里写什么字段，要看数据库fa_coupon_receive，cid是优惠券的外键，必须要有，因为如果没有，根本不知道领取优惠券是针对哪个活动的。
    所以给cid字段一个验证规则。在第一步写了规则，那么就就可以在第二步那里写触发规则的提示信息
    */

    /**
         * 定义验证规则
         * 格式：'字段名'	=>	['规则1','规则2'...]
         *
         * @var array
         */ 
    	protected $rule = [
            // 给地段cid验证规则：根据tp手册，require为必填规则，number为必须为数值
            'cid' => ['require', 'number'],
            'busid' => ['require', 'number'],
            // 'in:0,1'里面，in表示范围，表示只能从0和1两个进行选择
            'status' => ['number', 'in:0,1'],
        ];

        // 第二步，$message里面写规则信息。在第一步写了规则，那么就就可以在第二步这里写触发规则的提示信息

        /**
         * 定义错误信息
         * 格式：'字段名.规则名'	=>	'错误信息'
         *
         * @var array
         */
        protected $message = [
            // 因为第一步给到验证规则是，字段cid下的require为必填规则，number为必须为数值，如果这里不符合规则就在这里提示错误信息
            'cid.require' => '优惠活动未知',
            'cid.number' => '优惠活动ID参数有误',
            // 与cid字段相同
            'busid.require' => '会员信息未知',
            'busid.number' => '会员信息ID参数有误',
            'status.number' => '领取状态有误',
            'status.in' => '领取状态参数有误',
        ];

        // 第三步，$scene这里写场景结构

        /**
         * 验证场景定义
         * 格式：'场景名称'	=>	['字段1','字段2'...]
         *
         * @var array
         */
        protected $scene = [

        ];
}
